Abstract
这是一片发表在ACL2016上的短文,看名字就知道是关于如何自动化构建情感词表的文章。使用了一个神经网络的方法,并且不使用任何人工标注的资源。这个方法的灵感来自于NRC
方法,NRC
方法在SemEval13
中利用了大量推特中的emoticons
来获得了最好的结果,这个文章中的方法使用了词和推特情感的互信息来定义词的情感属性。
Introduction
在所有的自动化方法中,Mohammad
在2013年提出了使用推特的情感符号或者hashtags
来作为训练数据。这个方法的主要优点在于这样的训练数据的数量是很巨大的,并且可以避免人工标注。尽管这样会引入噪声,但是很多研究表明这个方法是有效的。Mohammad
在2013计算了词和表情符号之间的互信息,然后使用的词表获得了SemEval2013
的最好结果。这篇文章中,他们将展示可以通过直接优化预测准确率来获得更好的情感词表,这个过程中将情感词表作为输入,表情作为输出。这个方法和Mohammad
的方法的区别在于一个是predicting
,一个是counting
。
Related work
自动学习情感词表主要有三种方法
- 将现有的词表用情感信息扩展。这种方法严重依赖现有词表,并且有语言限制。
- 第二种方法是扩展现有的人工标注的词表。例如2014年
Tang
应用了神经网络来学习面对情感的词向量,所用的数据是少量的标注好的推特,然后将种子情感词集通过测量词之间的距离来扩展变大。Bravo-Marquez
在2015年通过对词进行分类,来扩展一个已有的词表,使用了人工抽取的特征。这些方法也都受限于人工资源的领域和语言。 - 第三种方法则是通过累计大数据中的统计特征来从头构建词表。
Turney
在2002年提出了通过计算种子词和搜索点击之间的PMI
来估计词的情感极性。2013年Mohammad
就使用了distance-supervised
的数据来代替种子词来改进这个方法。这个方法摆脱了语言和人工标注资源的限制,作为本文的baseline
。
Baseline
Mohammad
将推特的表情和相关hashtags
作为推特的情感标签。而情感分数则如下所示
$SS(w)=\mathbf{PMI}(w,pos)-\mathbf{PMI}(w,neg)$
$\mathbf{PMI}(w,pos)=log_2 \frac{freq(w,pos) \times N}{freq(w) \times freq(pos)}$
Model
每个词都转换成$w=(n,p)$。其中$n$表示的是正面性,而$p$则表示负面性。一个推特可以表示为
$tw=w_1,w_2,...,w_n$
然后用一个简单的神经网络来预测这个推特是正面还是负面。主要计算过程是
$h=\sum_i(w_i)$
$y=softmax(hW)$
每个token
的初始值都是在[-0.25,0.25],然后通过有监督的学习方式来学习每个token
的值。优化方法用的是stochasti gradient descent
。更新规则使用的是AdaDelta
。所有的模型都设定了batch size
为50,运行5个epoch
。
Sentiment Classification
训练好了之后,这些信息可以用于无监督和有监督的情感分类。在无监督的情感分类中,可以使用$p-n$作为词的情感分数,然后把一个文档中的所有词的情感分数都加起来,如果大于0这个文档就可以预测称正面。
有监督的方法则将情感词汇表当作特征。给定一个文档抽取如下的特征
- 情感词的数量,也就是在情感词汇表中情感分数不为0的。
- 文档的累计情感分数
- 最大的单词情感分数
- 正面情感词的总分数,负面情感词的总分数
- 最后一个词的情感分数
Experiments
在除掉中性情感的数据后,本文只做对正负情感判断的分类器,结果表明了本文自动生成的情感词汇表比通过counting
生成的NRC
情感词汇表效果要好得多。
将Hu and Liu(2004)
的手工标注的情感词表作为gold standard
,计算本文的方法生成的情感词汇表的准确率为78.2%
,而Mohammad(2013)
方法生成的词表的准确率为76.9%
。